package org.gap.wizards.spells;

import org.gap.wizards.creature.Creature;
import org.gap.wizards.pc.skills.Challenge;
import org.gap.wizards.views.ViewPlatform;
import org.gap.wizards.world.Location;

public interface Spell {

	/**
	 * Casts the spell, if the spell was executed returns true, otherwise
	 * returns false (has nothing to do with if the spell was successful).
	 * @param location
	 * @return
	 */
	String cast(Location location, Challenge challenge);

	void costOfSpell(Creature creature);

	String name();

	void showAffect(Location location, ViewPlatform platform);

}
